package com.numberone.iotplatform.exception;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

/**
 * 自定义异常类，用于表示请求的资源未找到。
 *
 * 当这个异常从 Controller 层抛出且未被捕获时，
 * Spring Boot 会根据 @ResponseStatus 注解自动将其映射为 HTTP 404 Not Found 响应。
 */
@ResponseStatus(HttpStatus.NOT_FOUND) // 【关键】将此异常映射到 HTTP 404 状态码
public class ResourceNotFoundException extends RuntimeException {

    private static final long serialVersionUID = 1L; // 序列化版本号，推荐添加

    /**
     * 构造函数，接收一个错误消息。
     * @param message 描述资源未找到的具体信息，例如 "Device not found with id: 123"
     */
    public ResourceNotFoundException(String message) {
        super(message);
    }

    /**
     * 构造函数，接收错误消息和根本原因（cause）。
     * @param message 描述信息
     * @param cause 导致此异常的原始异常
     */
    public ResourceNotFoundException(String message, Throwable cause) {
        super(message, cause);
    }
}